package demo3;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-21
 * Time: 11:21
 */
class Solution {
    public String toLowerCase(String s) {
        /**
         public static boolean isLetter(char ch)：判断指定字符是否为字母。
         public static boolean isUpperCase(char ch)：判断指定字符是否为大写字母。
         */
        StringBuilder stringBuilder = new StringBuilder();
        for(int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if(Character.isLetter(ch)) {//判断是不是字母
                if(Character.isUpperCase(ch)) {//判断是不是大写字母
                    ch = (char)(ch + 32);
                }
            }
            //字符串拼接：
            stringBuilder.append(ch);
        }
        return stringBuilder.toString();
    }
}
class Solution1 {
    public String toLowerCase(String s) {
        return s.toLowerCase();
    }
}

public class Test {
    public static void main(String[] args) {
        Solution1 solution1 = new Solution1();
        solution1.toLowerCase("Hello");
    }
    public static void main1(String[] args) {
        //System.out.println(Solution.toLowerCase("Hello"));
        Solution solution = new Solution();
        System.out.println(solution.toLowerCase("Hello"));
    }
}

/*
这段代码的目的是将一个字符串中的所有大写字母转换为小写字母，同时保留非字母字符和小写字母不变。

以下是该代码的简洁分析：

方法定义：定义了一个toLowerCase方法，它接受一个字符串s作为参数，并返回一个字符串。
StringBuilder初始化：为了高效地拼接字符，代码使用了StringBuilder类，并初始化了一个StringBuilder对象。
遍历字符串：通过一个for循环，代码遍历了输入字符串s中的每一个字符。
判断与转换：
使用Character.isLetter(ch)判断当前字符ch是否为字母。
如果是字母，再使用Character.isUpperCase(ch)判断它是否为大写字母。
如果是大写字母，就通过加上32（ASCII码中大写与小写字母之间的差值）来转换为小写字母。
字符串拼接：无论字符是否被转换，都使用stringBuilder.append(ch)将其添加到StringBuilder对象中。
返回结果：最后，使用stringBuilder.toString()将StringBuilder对象转换为字符串，并返回这个字符串。
简而言之，这段代码遍历输入字符串，将其中的大写字母转换为小写，然后返回转换后的字符串。
 */
